package com.hhkj.open.sys.model.req;

import cn.hutool.core.util.StrUtil;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * OpenLoginReq
 *
 * @author HHKJ-SERVER-ZJ
 * @since 2023/7/10 9:41
 */
@Data
public class LoginReq implements Serializable
{
    /** 机构社会信用代码 */
    @NotBlank(message = "机构信用代码不能为空")
    private String insUserName;

    /** 机构名称 */
    @NotBlank(message = "机构名称不能为空")
    private String insNickName;

    /** 机构信用代码 */
    @NotBlank(message = "机构信用代码不能为空")
    private String insSocialCode;

    /** 机构联系人姓名 */
    @NotBlank(message = "机构联系人姓名不能为空")
    private String insContactName;

    /** 机构联系人手机号 */
    @NotBlank(message = "机构联系人手机号不能为空")
    private String insContactPhone;

    /** 登录账号 */
    @NotBlank(message = "登录账号不能为空")
    private String userName;

    /** 账号名称 */
    @NotBlank(message = "登录账号名称不能为空")
    private String nickName;

    /** 原系统id信息 socialCode = insSocialCode + "_" + origSysId */
    @NotNull(message = "原系统id信息不能为空")
    private Long origSysId;

    /** 联系人手机号 */
    @NotBlank(message = "联系人手机号不能为空")
    private String contactPhone;

    /** 系统编码 社会信用代码前缀 */
    @NotBlank(message = "系统编码不能为空")
    private String sysCode;

    /** 培训回调地址 */
    @NotBlank(message = "培训回调地址不能为空")
    private String trainCallBackApi;

    public String createInsSocialCode()
    {
        return this.getSysCode() + StrUtil.UNDERLINE + this.getInsSocialCode();
    }

    public String createSocialCode()
    {
        return this.createInsSocialCode() + StrUtil.UNDERLINE + origSysId;
    }

    public String createUserName(Long parentId)
    {
        return parentId + this.getUserName();
    }
}
